﻿using Architecture.Domain.Dto;
using Architecture.Domain.Dto.MenuDto;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;

namespace Architecture.Domain.Service.MenuServices
{
    /// <summary>
    /// 菜单服务接口
    /// </summary>
    public interface IMenuService 
    {
        Task<int> AddMenu(Menu menu);

        Task<PagingMenuDto<MenuListDto>> GetMenus(int userId, int PageIndex, int PageSize, string? MenuName);

        Task<List<Menu>> GetMenuList(string menuName);

        Task<int> UpdateMenu(Menu menu);

        Task<Menu> GetMenuModel(int menuId);

        Task<int> GetMenuCount(int menuId);

        Task<int> DeleteMenu(int menuId);

        Task DeleteMenuChildren(Menu menu);

        Task<List<MenuRecursionDto>> GetMenuInfo(int pid=0);

        Task<List<MenuDto>> GetMenu(int userId);
    }
}
